package com.guoguo.leetcode.character;
/**
 * 有效的字母异位词
 * @desc 给定两个字符串 a 和 b ，编写一个函数来判断 a 是否是 b 的字母异位词。
 */
public class Anagram {
    /**
     * 步骤：
     * 1.先统计字符串b中每个字符的数量
     * 2.减去a中每个字符对应的数量
     * 如果最后结果都是0，说明a是b的字母异位词
     */
    private boolean isAnagram(String b, String a){
        if(b.length() != a.length()){
            return false;
        }
        int[] letterCount = new int[26];
        // 统计字符串b中的每个字符数量
        for(int i=0;i<b.length();i++){
            letterCount[b.charAt(i) - 'a']++;
        }
        // 减去字符串a中每个字符的数量
        for (int i = 0; i < a.length(); i++) {
            letterCount[a.charAt(i) - 'a']--;
        }
        // 如果数组letterCount的每个值都是0，返回true,否则返回false
        for(int count : letterCount){
            if(count!=0){
                return true;
            }
        }
        return false;
    }
}
